%module(directors="1") litehtml


%{
#include "include/litehtml.h"
%}

%include <std_array.i>
%include <std_string.i>
%include <std_vector.i>
%include <std_map.i>
%include <typemaps.i>


%feature("director")Document;
%rename(DocumentContainer) document_container;

%include "include/litehtml.h"
%include "include/litehtml/document.h"
%include "include/litehtml/document_container.h"
%include "include/litehtml/style.h"
%include "include/litehtml/types.h"

%typemap(gotype) floated_box && "litehtml.FloatedBox"

using namespace litehtml;

namespace std {
    template<class T> class enable_shared_from_this;
}
%template(EnableSharedFromThisDocument) std::enable_shared_from_this<document>;

%nspace litehtml::document;